---
layout: content
title: Home
---

<script>
    var links = ["https://github.com/pac4j/j2e-pac4j", "https://github.com/pac4j/spring-webmvc-pac4j", "https://github.com/pac4j/spring-security-pac4j", "https://github.com/bujiio/buji-pac4j",
        "https://github.com/pac4j/play-pac4j", "https://github.com/pac4j/vertx-pac4j", "https://github.com/pac4j/spark-pac4j", "http://ratpack.io/manual/current/pac4j.html#pac4j",
        "https://github.com/pac4j/undertow-pac4j", "http://apereo.github.io/cas/5.1.x/integration/Delegate-Authentication.html", "https://github.com/pac4j/jax-rs-pac4j", "https://github.com/evnm/dropwizard-pac4j",
        "http://knox.apache.org/books/knox-0-9-0/user-guide.html#Pac4j+Provider+-+CAS+/+OAuth+/+SAML+/+OpenID+Connect", "http://jooby.org/doc/pac4j", "https://github.com/pac4j/pac4j"];

    var images = ["/img/logo-j2e.png", "/img/logo-spring-webmvc.png", "/img/logo-spring-security.png", "/img/logo-shiro.png", "/img/logo-play.png", "/img/logo-vertx.png",
        "/img/logo-spark.png", "/img/logo-ratpack.png", "/img/logo-undertow.png", "/img/logo-cas.png", "/img/logo-jaxrs.png", "/img/logo-dropwizard.png", "/img/logo-knox.png",
        "/img/logo-jooby.png", "/img/logo.png"];
    var i = 0;
    setInterval(function(){
        if(links.length == i){
            i = 0;
        }
        else {
            document.getElementById("bannerImage").src = images[i];
            document.getElementById("bannerLink").href = links[i];
            i++;
        }
    },2000);
</script>

<div id="home" class="text-center">

    <a id="bannerLink" href="https://github.com/pac4j/pac4j"><img width="320" height="285" id="bannerImage" src="/img/logo.png" /></a>

    <h1 id="engine">The <a href="https://github.com/pac4j/pac4j">Java security engine</a> to protect all your web applications</h1>

    <h2 id="implem">Available for most frameworks/tools (<i>implementations</i>):<br />
        <a href="https://github.com/pac4j/j2e-pac4j">J2E</a> &bull; <a href="https://github.com/pac4j/spring-webmvc-pac4j">Spring Web MVC <small>(Spring Boot)</small></a> &bull; <a href="https://github.com/pac4j/spring-security-pac4j">Spring Security <small>(Spring Boot)</small></a> &bull; <a href="https://github.com/bujiio/buji-pac4j">Shiro</a><br />

         <a href="https://github.com/pac4j/play-pac4j">Play 2.x</a> &bull; <a href="https://github.com/pac4j/vertx-pac4j">Vertx</a> &bull; <a href="https://github.com/pac4j/spark-pac4j">Spark Java</a> &bull; <a href="http://ratpack.io/manual/current/pac4j.html#pac4j">Ratpack</a> &bull; <a href="https://github.com/pac4j/undertow-pac4j">Undertow</a><br />

         <a href="https://apereo.github.io/cas/5.1.x/integration/Delegate-Authentication.html">CAS server</a> &bull; <a href="https://github.com/pac4j/jax-rs-pac4j">JAX-RS</a> &bull; <a href="https://github.com/evnm/dropwizard-pac4j">Dropwizard</a> &bull; <a href="http://knox.apache.org/books/knox-0-9-0/user-guide.html#Pac4j+Provider+-+CAS+/+OAuth+/+SAML+/+OpenID+Connect">Knox</a> &bull; <a href="http://jooby.org/doc/pac4j">Jooby</a>
     </h2>

    <h2 id="authent">Supports most authentication mechanisms:<br />

        <small>OAuth (Facebook, Twitter, Google...) - SAML - CAS - OpenID Connect - HTTP - OpenID - Google App Engine<br />
        LDAP - SQL - JWT - MongoDB - CouchDB - IP address - Kerberos (SPNEGO) - REST API</small>

    </h2>
    <h2 id="authoriz">and authorization mechanisms:<br />

        <small>Roles/permissions - Anonymous/remember-me/(fully) authenticated - CORS - CSRF - HTTP Security headers</small>

    </h2>
    <h3 id="supporters">
        Supported by <a href="https://auth0.com/overview?utm_source=GHsponsor&utm_medium=GHsponsor&utm_campaign=pac4j&utm_content=auth">Auth0 <img src="/img/auth0_logo.svg" /></a>
    </h3>

</div>
